/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package data;
import java.util.*;
/**
 *
 * @author Alex
 */
public class categoria extends objeto{
    List<categoria> listaCategorias;
    List<proyecto> listaProyectos;
    
    public categoria(){
        listaCategorias = new ArrayList();
        listaProyectos = new ArrayList();
    }
    
    public categoria(int id, String nombre, String descripcion){
        this.id = id;
        this.nombre = nombre;
        this.descripcion = descripcion;
        this.padre = null;
        listaCategorias = new ArrayList();
        listaProyectos = new ArrayList();
    }
    
    public void copiar(categoria c){
        padre = c.getPadre();
        id = c.getId();
        nombre = c.getNombre();
        listaCategorias = c.getListaCategorias();
        listaProyectos = c.getListaProyectos();
        descripcion = c.getDescripcion();
    }
    
    public List<categoria> getListaCategorias(){
        return listaCategorias;
    }
    
    public List<proyecto> getListaProyectos(){
        return listaProyectos;
    }
    
    public categoria getCategoria(int hijo){
        return listaCategorias.get(hijo);
    }
    
    public proyecto getProyecto(int hijo){
        return listaProyectos.get(hijo);
    }
    
    public void anadirCategoria(categoria hijo){
        hijo.setPadre(this);
        listaCategorias.add(hijo);
    }
    
    public void anadirProyecto(proyecto hijo){
        hijo.setPadre(this);
        listaProyectos.add(hijo);
    }
    
    public int totalCategorias(){ return listaCategorias.size(); }
    
    public int totalProyectos(){ return listaProyectos.size(); }
    
    public void quitarCategoria(int hijo){
        for(int i = 0; i < listaCategorias.size(); i++){
            if(listaCategorias.get(i).getId() == hijo)
                listaCategorias.remove(i);
        }
    }
    
    public void quitarProyecto(int hijo){
        listaProyectos.remove(hijo);
    }
    
    public categoria buscarCategoria(int id){
        if(this.id == id)
            return this;
        for(int i = 0; i < listaCategorias.size(); i++){
           if(listaCategorias.get(i).getId() == id){
               return listaCategorias.get(i);
           }else{
               categoria temp = listaCategorias.get(i).buscarCategoria(id);
               if(temp != null)
                   return temp;
           }
        } return null;
    }

    public proyecto buscarProyecto(int id){
        for(int i = 0; i < listaProyectos.size(); i++){
           if(listaProyectos.get(i).getId() == id){
               return listaProyectos.get(i);
           }
        }for(int i = 0; i < listaCategorias.size(); i++){
            proyecto temp = listaCategorias.get(i).buscarProyecto(id);
            if(temp != null)
                return temp;
        }
        return null;
    }
////////////////////////////////////////////////////////////////////////////////
}
